package com.sg.dto.integration.framework;


import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;


@Data
public class OrgGradeScopeDto extends BaseDto implements Serializable {

    /**
     * 归属对象实例ID:
     */
    @ApiModelProperty("归属对象实例ID")
    private String entityId;

    /**
     * 岗位等级中文名称:
     */
    @ApiModelProperty("岗位等级中文名称")
    private String stationGradeName;

    /**
     * 岗位等级ID:
     */
    @ApiModelProperty("岗位等级ID")
    private String stationGradeId;

    /**
     * 排序:
     */
    @ApiModelProperty("排序")
    private Long orderNumber;

    /**
     * 批次ID:
     */
    @ApiModelProperty("批次ID")
    private String batchId;
    /**
     * 岗位等级别名:
     */
    @ApiModelProperty("岗位等级别名")
    private String stationGradeAlias;
    /**
     * 等级范围关系ID:
     */
    @ApiModelProperty("等级范围关系ID")
    private String gradeScopeId;
    /**
     * 批次下更新状态:
     */
    @ApiModelProperty("批次下更新状态")
    private String updateStatus;
    /**
     * 操作人就职记录ID:
     */
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;
    /**
     * 操作时间:
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;
    /**
     * 岗位等级关系标识:
     */
    @ApiModelProperty("岗位等级关系标识")
    private String gradeScopeCode;
    /**
     * 归属对象类型编码:
     */
    @ApiModelProperty("归属对象类型编码")
    private String typeCode;
    /**
     * 主体生命周期:
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        OrgGradeScopeDto that = (OrgGradeScopeDto) o;
        return entityId == that.entityId && stationGradeName == that.stationGradeName && stationGradeId == that.stationGradeId && orderNumber == that.orderNumber && batchId == that.batchId && stationGradeAlias == that.stationGradeAlias && gradeScopeId == that.gradeScopeId && updateStatus == that.updateStatus && operationInductionId == that.operationInductionId && operateTime == that.operateTime && gradeScopeCode == that.gradeScopeCode && typeCode == that.typeCode && subjectLifeCycle == that.subjectLifeCycle;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), entityId, stationGradeName, stationGradeId, orderNumber, batchId, stationGradeAlias, gradeScopeId, updateStatus, operationInductionId, operateTime, gradeScopeCode, typeCode, subjectLifeCycle);
    }

}
